// pages/sysMessage/sysMessage.js
import { shareOptions } from "../../utils/access";
import request from "../../utils/request";
import { getStorage, getBarAndTitleHeight, jump } from "../../utils/utils"
const api = require("../../config/api");

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 标签页选中项
    tabIndex: '1',
    pages:0,
    page:1,
    showNodata:false,
    //通知数量信息
    numInfo:{}, //systemNumber 通知数量  //waitNumber 待处理数量
    list: [], //通知所有数据
    classifyList: [], //通知分类数据
    waitList: [], //待处理所有数据
    alreadyList: [], //已处理所有数据
    titleList: {
      11: '勋章获得',
      12: '等级提升',
      13: '系统公告',
      16: '提现发放成功',
      17: '提现驳回',
      // 待处理
      31: '入圈申请',
      32: '入圈邀请',
      // 已处理
      41: '入圈申请',
      42: '入圈申请',
      43: '入圈邀请',
      44: '入圈邀请',
      45: '入圈申请',
      46: '入圈邀请',
      // 通知
      101: '圈子通知',
      102: '圈子通知',
      103: '圈子通知',
      104: '圈子通知',
      105: '圈子通知',
      106: '圈子通知',
      107: '圈子通知',
      108: '圈子通知',
      109: '圈子通知',
      110: '圈子通知',
      111: '圈子通知',
      112: '圈子通知',
      113: '圈子通知',
      // 订单
      150: '订单通知',
      151: '订单通知',
      152: '订单通知',
      153: '订单通知',
      154: '系统通知',
    },
    textLeftList:{
      11: '',
      12: '',
      13: '',
      16: '',
      17: '',
      //待处理
      31:'',
      32:'',
      // 已处理
      41: '',
      42: '',
      43: '',
      44: '',
      45: '',
      46: '',
      // 通知
      101: '',
      102: '',
      103: '',
      104: '您被圈主',
      105: '您的帖子',
      106: '您被管理员',
      107: '您的帖子',
      108: '您的帖子',
      109: '您的帖子',
      110: '',
      111: '',
      112: '用户',
      113: '',
      154: '恭喜您获得了一张',
    },
    textCenterList: {
      11: '恭喜您获得一枚',
      12: '恭喜您等级提升至',
      16: '您的提现申请已通过，钱款已进入微信钱包',
      17: '抱歉，您的提现申请因',
      // 待处理
      31: '申请加入圈子',
      32: '邀请你加入圈子',
      // 已处理
      41: '申请加入圈子',
      42: '申请加入圈子',
      43: '邀请你加入圈子',
      44: '邀请你加入圈子',
      45: '申请加入圈子',
      46: '邀请你加入圈子',
      // 通知
      101: '已退出圈子',
      102: '同意加入圈子',
      103: '拒绝加入圈子',
      104: '移出了圈子',
      105: '已被圈主选为',
      106: '移出了圈子',
      107: '已被',
      108: '因不符合内容管理规范，已被圈主',
      109: '因不符合内容管理规范，已被',
      110: '同意您加入圈子',
      111: '拒绝您加入圈子',
      112: '已加入圈子',
      113: '已加入圈子',
      // 二手订单
      150: '您的商品已被拍下待付款，快去看看吧',
      151: '买家已取消付款，快去看看吧',
      152: '您的商品已经付款，请尽快联系买家交易',
      153: '您的商品买家已确认收货，钱款已到余额',
    },
    textRightList: {
     // 已处理
      41: '已加入',
      42: '已拒绝',
      43: '已加入',
      44: '已拒绝',
      45: '已失效',
      46: '已失效',
      // 通知
      101: '',
      102: '',
      103: '',
      104: '',
      105: '圈子精选帖子',
      106: '',
      107: '选为精选',
      108: '删除',
      109: '删除',
      110: '',
      111: '',
      112: '',
      113: '',
      154: '！快去查看吧~',
    },
    textHandleList: {
      11: '查看详情',
      12: '查看详情',
      13: '查看详情',
      16: '',
      17: '',
      150: '查看详情',
      151: '查看详情',
      152: '查看详情',
      153: '查看详情',
      154: '查看详情',
    },
  },

  /**
   * 生命周期函数--监听页面加载
   */
 onLoad: async function (options) {
    await this.getNoticeNumber()
    this.getList()
    this.setData({
      ...getBarAndTitleHeight(),
    })
  },
  /**
   * 获取通知数量
   */
  getNoticeNumber: async function(){
    const res = await request.get(api.noticeCount,{})
      if(res.httpStatus==200){
        console.log('res',res);
        this.setData({
          numInfo:res.data
        })
      }
  },
  //标签页切换
  switchNav(e) {
    const tabIndex = e?.currentTarget?.dataset?.index
    if(this.data.tabIndex==tabIndex) return
     this.setData({
       tabIndex,
       page: 1,
       list: [],
       classifyList: [],
       waitList: [],
       alreadyList: []
     },()=>{
      this.getList()
      wx.pageScrollTo({
        scrollTop: 0
      })
     })
  },
  //获取列表
  getList: async function(){
    let {list,page,tabIndex} = this.data
    let params={
      page,
      type:{
        '1': 1,
        '2': 3,
        '3': 4,
      }[tabIndex]
    }
    const res = await request.get(api.getSysMessageList,params)
    if(res.httpStatus==200){
      console.log('res',res)
      this.setData({
        pages:res.data.pages
      })
      if(tabIndex=='1'){
        this.setData({
          list: page === 1 ? res.data.records : list.concat(res.data.records)
        })
       let classifyList=[[],[]]
       this.data.list.forEach(item=>{
          if(item.readed===1){
            classifyList[1].push(item)
          }else{
            classifyList[0].push(item)
          }
       })
        this.setData({
         classifyList
        })
      }else if(tabIndex=='2'){
        this.setData({
          waitList: page === 1 ? res.data.records : list.concat(res.data.records)
        })
      }else if(tabIndex=='3'){
        this.setData({
          alreadyList: page === 1 ? res.data.records : list.concat(res.data.records)
        })
      }
    }
  },
 clckItem: async function(e){
    let type = e.currentTarget.dataset.type
    let id = e.currentTarget.dataset.id
    let circleId = e.currentTarget.dataset.circleid
    let orderNo = e.currentTarget.dataset.orderNo
    console.log('e',e.currentTarget.dataset);
    let userId = getStorage('userId')
    if(type==11){
      wx.navigateTo({
        url:`/pages/medalDetail/medalDetail?id=${id}`,
      })
    }else if(type==12){
      wx.navigateTo({
        url: `/pages/level/level?levelId=${id}&id=${userId}`,
      })
    }else if(type==13){//系统公告详情
      wx.navigateTo({
        url: `/pages/noticDetail/noticDetail?noticedId=${id}`,
      })
    }else if(type==14){//去打卡
      this.startChallenge()
    }else if(type==15){//去关注列表提醒
      wx.navigateTo({
        url: `/pages/followList/followList?userId=${userId}`,
      })
    }else if(![107,108,109].includes(type) && circleId){ //去圈子详情
      if (this.loading) return
      this.loading = true
      const res = await request.get(api.circleDetail, { id: circleId }, { loading: false })
      if (!res?.data?.allow) {
        wx.showToast({
          icon: 'none',
          title: '抱歉，您没有访问权限',
          duration: 2000
        })
      } else {
        wx.navigateTo({
          url: `/pages/circle/circle?id=${circleId}`,
        })
      }
      this.loading = false
    }else if(type>=150 && orderNo && type<=153){ //去订单详情
      wx.navigateTo({
        url: `/pages/idleOrderDetail/idleOrderDetail?orderNo=${orderNo}`
      })
    } else if (type == 154) {
      jump('coinCertificate')
    }
  },
  // 开启挑战
	async startChallenge() {
    if (this.loading) return
    this.loading = true
    const res = await request.get(api.checkIsFail, null, { loading: false })
    // 0需要补救 1进行中 2成功 3失败 4无任务
    if ([2, 3, 4].includes(res?.data?.status)) {
      await request.get(api.startChallenge, null, { loading: false })
    }
		wx.navigateTo({
      url: `/pages/trophy/trophy`,
    })
  },
  /**
   *  圈子加入拒绝 
   * type:31 圈主操作 32 用户操作
   */
  async refuse(e){
    if(this.loading) return
    this.loading= true
    let { id, type }= e.currentTarget.dataset
    if(!id || !type) {
      this.loading= false
      return
    }
    let params={
       id,
       status: 4
    }
    let apiPath
    if(type===31){ //圈主操作
      apiPath= api.socialCircleInOut
    }else{//用户操作
      apiPath= api.socialCircleInOutUser
    }
    const res = await request.get(apiPath,params)
    if(res.httpStatus==200){
        this.getNoticeNumber()     
        let list= this.data.waitList
        list.splice(e.currentTarget.dataset.index,1)
        this.setData({
          waitList: list
        })
    }
    this.loading=false
  },
  /**
   *  圈子加入通过
   * type:31 圈主操作 32 用户操作
   */
  async pass(e){
    if(this.loading) return
    this.loading= true
    let { id, type }= e.currentTarget.dataset
    if(!id || !type) {
      this.loading= false
      return
    }
    let params={
       id,
       status: 5
    }
    let apiPath
    if(type===31){  //圈主操作
      apiPath= api.socialCircleInOut
    }else{ //用户操作
      apiPath= api.socialCircleInOutUser
    }
    const res = await request.get(apiPath,params)
    if(res.httpStatus==200){
        this.getNoticeNumber()   
        let list= this.data.waitList
        list.splice(e.currentTarget.dataset.index,1)
        this.setData({
          waitList: list
        })
    }
    this.loading=false
  },
  // 跳转个人主页
  jumpHome(e) {
    const item = e.currentTarget.dataset.item
    if (item?.fromUserDO?.id) {
      jump('home', { id: item?.fromUserDO?.id })
    }
  },
  // 点击返回
  handleBack(){
    wx.navigateBack({
      delta: 1,
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.loading = false
    this.getNoticeNumber()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: async function () {
    this.setData({
      page:1,
      showNodata:false,
      list:[]
    })
    await this.getNoticeNumber()
    this.getList()
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let {page,pages} = this.data
    if(page<pages){
      page++
      this.setData({
        page
      })
      this.setData({
        showNodata:false,
      })
      this.getList()
    }else{
      this.setData({
        showNodata:true,
      })
    }
  },

  // 用户点击右上角分享
	onShareAppMessage(e) {
		return shareOptions('default', e)
	},
})